<?php

/**
 * Created by PhpStorm.
 * User: yanshinian@yeah.net
 * Date: 2019/5/22
 * Time: 17:51.
 * jd.union.open.goods.query
 */
class UnionOpenGoodsQueryRequest
{
    /**
     * @var long 一级类目id
     */
    private $cid1;
    /**
     * @var long 二级类目id
     */
    private $cid2;
    /**
     * @var long 三级类目id
     */
    private $cid3;
    /**
     * @var int     页码
     */
    private $pageIndex;
    /**
     * @var int 每页数量，单页数最大30，默认20
     */
    private $pageSize;
    /**
     * @var array skuid集合(一次最多支持查询100个sku)，数组类型开发时记得加[]
     */
    private $skuIds;
    /**
     * @var string 关键词，字数同京东商品名称一致，目前未限制
     */
    private $keyword;
    /**
     * @var float 商品价格下限 
     */
    private $pricefrom;
    /**
     * @var float 商品价格上限
     */
    private $priceto;
    /**
     * @var int 佣金比例区间开始
     */
    private $commissionShareStart;
    /**
     * @var int 佣金比例区间结束
     */
    private $commissionShareEnd;
    /**
     * @var string 商品类型：自营[g]，POP[p]
     */
    private $owner;
    /**
     * @var string  排序字段(price：单价, commissionShare：佣金比例, commission：佣金， inOrderCount30Days：30天引单量， inOrderComm30Days：30天支出佣金)
     */
    private $sortName;
    /**
     * @var string  asc,desc升降序,默认降序
     */
    private $sort;
    /**
     * @var Integer    是否是优惠券商品，1：有优惠券，0：无优惠券
     */
    private $isCoupon;
    /**
     * @var Integer     是否是拼购商品，1：拼购商品，0：非拼购商品
     */
    private $isPG;
    /**
     * @var Double     拼购价格区间开始
     */
    private $pingouPriceStart;
    /**
     * @var Double      拼购价格区间结束
     */
    private $pingouPriceEnd;
    /**
     * @var Integer     是否是爆款，1：爆款商品，0：非爆款商品
     */
    private $isHot;
    /**
     * @var String      品牌code
     */
    private $brandCode;
    /**
     * @var Integer     店铺Id
     */
    private $shopId;
    /**
     * @var Integer     1：查询有最优惠券商品；其他值过滤掉此入参条件。
     */
    private $hasContent;
    /**
     * @var Integer         1：查询有最优惠券商品；其他值过滤掉此入参条件。
     */
    private $hasBestCoupon;
    /**
     * @var Integer        联盟id_应用iD_推广位id
     */
    private $pid;
    /**
     * @var String        支持出参数据筛选，逗号','分隔，目前可用：videoInfo(视频信息),commentInfo(评论信息),hotWords(热词),similar(相似推荐商品)
     */
    private $fields;
    /**
     * @var String        过滤规则，入参表示不展示该规则数据，支持多个逗号','分隔，2:OTC商品;3:加油卡;4:游戏充值卡;5:合约机;6:京保养;7:虚拟组套;8:定制商品
     */
    private $forbidTypes;
    /**
     * @var Integer[]      京喜商品类型，1京喜、2京喜工厂直供、3京喜优选（包含3时可在京东APP购买），入参多个值表示或条件查询
     */
    private $jxFlags;
    /**
     * @var Double       支持传入0.0、2.5、3.0、3.5、4.0、4.5、4.9，默认为空表示不筛选评分
     */
    private $shopLevelFrom;


    private $apiParas = [];

    public function setCid1($cid1)
    {
        $this->cid1 = $cid1;
        $this->apiParas['cid1'] = $cid1;
    }

    public function setCid2($cid2)
    {
        $this->cid2 = $cid2;
        $this->apiParas['cid2'] = $cid2;
    }

    public function setCid3($cid3)
    {
        $this->cid2 = $cid3;
        $this->apiParas['cid3'] = $cid3;
    }

    public function setPageIndex($pageIndex)
    {
        $this->pageIndex = $pageIndex;
        $this->apiParas['pageIndex'] = $pageIndex;
    }

    public function setPageSize($pageSize)
    {
        $this->pageSize = $pageSize;
        $this->apiParas['pageSize'] = $pageSize;
    }

    public function setSortName($sortName)
    {
        $this->sortName = $sortName;
        $this->apiParas['sortName'] = $sortName;
    }

    public function setSort($sort)
    {
        $this->sort = $sort;
        $this->apiParas['sort'] = $sort;
    }

    public function setSkuIds($skuIds)
    {
        $this->pageIndex = $skuIds;
        $this->apiParas['skuIds'] = $skuIds;
    }

    public function getApiMethodName()
    {
        return 'jd.union.open.goods.query';
    }

    public function getApiParas()
    {
        return  array('goodsReqDTO' => $this->apiParas);
    }

    public function check()
    {
    }

    public function putOtherTextParam($key, $value)
    {
        $this->apiParas[$key] = $value;
        $this->$key = $value;
    }
}
